A storage system that realizes high-capacity data storage by using a plurality of storage media has been recently generalized. The storage system includes, for example, a storage area network (SAN). In the storage system, a network consisting of a switching device (hereinafter, simply referred to as a “switch”), a cable, and the like is formed between a computation device and a storage device. The computation device is, for example, a server that processes data, and is referred to as a host. Moreover, the storage device is a device that includes a storage medium such as a hard disk, and is referred to as a storage device. The writing and reading of data are performed by transmitting and receiving a frame including data and a command on the network between the computation device and the storage device. At this time, the computation device transmits a command to a storage device that becomes a target of the writing or reading of data as an initiator. In other words, the computation device leads a process inside the storage system and the storage device is passively activated.
Recently, a fibre channel (FC) can be used as a connection cable in order to transmit and receive data between a computation device and a storage device by using light. When the fiber channel is used, a host bus adapter (HBA) that has a transmission/reception port for optical transmission of data is provided in the computation device. Moreover, a channel adapter (CA) is provided in the storage device, and transmission and reception for optical transmission of data is performed via the CA. A switch that is used for the configuration using the fiber channel is, particularly, referred to as a fiber channel switch (FC switch).
Furthermore, as an FC switch, there is proposed a virtualized FC switch that has a function for virtualizing a physical disk that is a physical storage medium to make up one or a plurality of virtual disks. Specifically, a virtualized FC switch configures an arbitrary storage area of a storage device connected thereto as a virtual disk. The virtualized FC switch has a function for providing the virtual disk to a host through a virtual target (VT). In this case, a configuration made by gathering a plurality of virtual disks provided by one virtual target is referred to as a “virtual storage”. Hereinafter, when it is simply referred to as a storage device, it is assumed that it indicates a physical storage device. Moreover, a switch that has a function for moving data from a virtual disk in operation to another virtual disk is also proposed as a virtualized FC switch.
In this case, a storage device generally has a function for simultaneously receiving a plurality of commands from a computation device and inputting the received commands into a queue in order to raise an I/O performance. It is called a command queuing. In this case, an I/O performance means, for example, a performance for the input and output of data. FIG. 8 is a diagram illustrating a command queuing. FIG. 9 is a sequence diagram during a command queuing. A vertical axis of FIG. 9 indicates the temporal operations of a host 2, a CA 303, a cache memory 301, and a disk 302 from the left side of the drawing. Moreover, each vertical axis indicates that a time passes toward the bottom of the drawing. Moreover, the disk 302, the cache memory 301, and the CA 303 are included in a storage 3 that is a storage device.
In FIG. 8, it will be explained about the case where a Read command for data in an area called a block A of the disk is issued from the host 2 (S301). In this case, if the requested data is not in the cache memory 301, the storage 3 reads out data in the block A from the disk 302 and stores the data in the cache memory 301 (S302). After that, the storage 3 transfers the data stored in the cache memory 301 to the host 2 (S305). Therefore, a waiting time from reading data to storing the data in the cache memory 301 occurs until the data in the block A is sent from the storage 3 to the host 2.
Therefore, while the data in the block A is being read out from the disk 302 (S302), the host 2 issues a Write command to a block B that is another area in the disk 302 (S303). Data for the Write command is first stored in the cache memory 301. In this way, because a process for the Write command does not require the reading from the hard disk, the process for the Write command is promptly performed without waiting for the reading of data in the block A (S304).
Furthermore, it is serially explained about a command queuing operation of each device with reference to FIG. 9. The host 2 transmits a Read command to the CA 303 (S401). The CA 303 transmits the Read command to the cache memory 301 (S402). At this time, when the requested data is not in the cache memory 301, in other words, in the case of a cache miss, the CA 303 transmits the Read command for the cache memory 301 to the disk 302 (S403). In this case, the host 2 transmits a Write command to the CA 303 (S404). Then, data is written into the cache memory 301 via the CA 303 (S405). Then, when the writing is completed, the CA 303 transmits a writing success notification to the host 2 (S406). In the meantime, the CA 303 makes the disk 302 transmit the data requested at S403 to the cache memory 301 and stores the data in the cache memory 301 (S407). Next, the storage 3 transmits the data stored in the cache memory 301 to the CA 303 (S408). The CA 303 transmits the received data to the host 2 (S409). Then, the CA 303 outputs a reading success notification (including an all-process completion notification) to the host 2 (S410). According to this, a time from sending the Read command to the cache memory 301 (S402) to writing data into the cache memory 301 (S407) can be efficiently used.
In this case, a command queuing number that is an upper limit of process-waiting executable instructions (commands) that can be stored is different depending on storage devices. “Storing” is to store the executable instructions in a storage device until the process is performed. Moreover, an executable instruction means an instruction for making a storage perform a process such as a reading process and a writing process. An operator uses each storage after setting a command queuing number of each storage device connected to a computation device in a device driver of the computation device.
A virtual storage can merge storage areas of plural kinds of storage devices to look like one virtual disk regardless of the types of storage devices. In this case, the command queuing number set in the device driver of the computation device cannot exceed a command queuing number of each storage device that makes up the virtual disk.
Now, it will be explained about a command queuing number of each virtual disk when a virtual disk is made up of storages 3a and 3b of which the command queuing numbers are different with reference to FIG. 10. FIG. 10 is a configuration diagram of a virtual storage system that is made up of storage devices of which the command queuing numbers are different. The host 2 transmits and receives data to and from the storage 3a and the storage 3b via an FC switch 1. The FC switch 1 manages each virtual storage and each virtual disk as a virtual storage system 800. The virtual storage system 800 is surrounded with a dotted line in FIG. 10. Dotted lines that link virtual disks 801 and 802 to the storages 3a and 3b indicate which of the storage devices makes up the respective virtual disks as physical disks.
In this case, it is assumed that the command queuing number of the storage 3a is 30 and the command queuing number of the storage 3b is 10. By doing so, because the virtual disk 801 is made up of the physical disk of the storage 3a, the upper limit of the command queuing number becomes 30. On the contrary, because the virtual disk 802 is made up of the physical disk of the storage 3b, the upper limit of the command queuing number becomes 10. In this way, the command queuing number of the virtual disk is determined by the command queuing number of a storage device that makes up the virtual disk.
As a technology for managing storages having different performances in this way, a technology for managing dedicated storage devices having different storage device types by using one management rule in which the management methods of the dedicated storage devices are defined is conventionally proposed. This technology has been known as disclosed in, for example, Japanese National Publication of International Patent Application No. 2006-524864.
In this case, an operator can freely decide a combination of storage devices that make up virtual disks. In other words, a settable command queuing number may be different for each virtual disk. On the contrary, a command queuing number of a virtual disk has been conventionally set in a unit of a virtual storage system. In other words, the same command queuing number is set for all virtual disks included in the virtual storage system. In this way, according to the conventional method, it is difficult to effectively utilize a command queuing performance of storage devices that make up a storage system.
Moreover, a technology for managing a plurality of dedicated storage devices by using one management rule described above is a technology for managing physical storage devices in accordance with the types of the storage devices. Therefore, even if the technology is used, it is difficult to effectively utilize a command queuing performance of the storage devices that make up the virtual storage system.